﻿using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace Administracja
{
    public partial class Zarzadzanie : Form
    {
        private int _idB;
        private string _nazwaPliku = "";

        public Zarzadzanie()
        {
            InitializeComponent();
            Wyswietl();
        }

        private void Wyswietl()
        {
            int zaznaczony = 0;

            if (lista.Items.Count > 0)
            {
                zaznaczony = lista.SelectedItems[0].Index;
            }

            lista.Items.Clear();

            foreach (var reader1D in Baza.Wczytaj2DData("SELECT * FROM DATA"))
            {
                ListViewItem element = lista.Items.Add(reader1D[0]);
                element.SubItems.Add(reader1D[1]);
                element.SubItems.Add(reader1D[2]);
                element.Checked = reader1D[3] == "T";
            }

            if (lista.Items.Count == zaznaczony) zaznaczony--;

            if (lista.Items.Count > zaznaczony)
            {
                lista.Items[zaznaczony].Selected = true;
            }
            else if (lista.Items.Count > 0)
            {
                lista.Items[0].Selected = true;
            }
        }

        private void Zapisz()
        {
            for (int i = 0; i < lista.Items.Count; i++)
            {
                string pokaz = lista.Items[i].Checked ? "T" : "N";

                Baza.ZapiszData("UPDATE DATA SET " + "Pokaz = '" + pokaz + "' WHERE ID = '" + lista.Items[i].Text + "'");
            }

            Baza.UstawData("DATA");
        }

        private void NowaClick(object sender, EventArgs e)
        {
            Zapisz();
            new ZarzadzanieNowa(_nazwaPliku).ShowDialog();
            Wyswietl();
        }

        private void IstniejacaClick(object sender, EventArgs e)
        {
            Zapisz();
            new ZarzadzanieDodajIstniejacy().ShowDialog();
            Wyswietl();
        }

        private void UsunClick(object sender, EventArgs e)
        {
            if (Wyjatki.Komunikat("Czy napewne chcesz usunąć ten rok z listy? Pliki na dysku zostaną zachowane.", "Usunać?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                Baza.ZapiszData("DELETE FROM DATA WHERE ID = '" + _idB + "'");
            }

            Baza.UstawData("DATA");

            Wyswietl();
        }

        private void ZapiszClick(object sender, EventArgs e)
        {
            Zapisz();

            Close();
        }

        private void FolderClick(object sender, EventArgs e)
        {
            System.Diagnostics.Process.Start("Baza", "/max");
        }

        private void ListaSelectedIndexChanged(object sender, EventArgs e)
        {
            int index;

            try
            {
                index = lista.SelectedItems[0].Index;
            }
            catch
            {
                index = 0;
            }

            _idB = int.Parse(lista.Items[index].Text);

            try
            {
                _nazwaPliku = lista.SelectedItems[0].SubItems[2].Text;
            }
            catch
            {
                _nazwaPliku = lista.Items[0].SubItems[2].Text;
            }
        }

        private void KopiaClick(object sender, EventArgs e)
        {
            new ZarzadzanieKopia().ShowDialog();

            Wyswietl();
        }
    }
}